function multiply(a, b, callback) {
  setTimeout(() => callback(a * b), 1000);
}

// 调用multiply 在回调函数中接收并打印结果
// multiply(2,3,ret=>console.log("ret=",ret))

function mulPromise(a, b) {
  return new Promise((resolve, reject) => {
      // 调用multiply 在回调函数中Promise履约结果
    // 调用和multiply计算2*3 结果什么时候回来 就什么时候履约
    multiply(a, b, (ret) => resolve(ret));
  });
}

function chainDemo() {
  mulPromise(2, 3)
    .then((ret) => {
      console.log("ret23=", ret);
      return mulPromise(ret, 4);
    })
    .then((ret) => {
      console.log("ret4=", ret);
      return mulPromise(ret, 5);
    })
    .then((ret) => console.log("ret5=", ret));
}
// chainDemo()

async function awaitDemo() {
    let ret = await mulPromise(2, 3)
    console.log("ret23=", ret);

    ret = await mulPromise(ret, 4);
    console.log("ret4=", ret);

    ret = await mulPromise(ret, 5);
    console.log("ret5=", ret);
}
// awaitDemo()
